package com.parking.mgr.useraccount.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.parking.mgr.useraccount.model.entity.BasicCodeEntity;
import com.parking.mgr.useraccount.model.param.BasicCodeParam;
import com.parking.mgr.useraccount.model.vo.BasicCodeVO;

import javax.servlet.http.HttpServletRequest;
import java.util.Collection;
import java.util.List;

/**
 * @ClassName BasicCodeService
 * @Description 数据字典service接口
 * @Auther: shilintao
 * @Date: 2023/5/24
 */
public interface BasicCodeService extends IService<BasicCodeEntity> {

    /**
     * 数据字典（树）
     * @param basicCodeParam 查询参数
     * @return 数据字典树列表
     */
    List<BasicCodeVO> list(BasicCodeParam basicCodeParam);

    /**
     * 数据字典（树）启用状态
     * @param basicCodeParam 查询参数
     * @return 数据字典树列表
     */
    List<BasicCodeVO> listEnable(BasicCodeParam basicCodeParam);

    /**
     * 添加数据字典
     * @param basicCodeParam 添加参数
     */
    void add(BasicCodeParam basicCodeParam);

    /**
     * 删除数字典
     * @param ids
     */
    void delete(Collection<String> ids);

    /**
     * 编辑数据字典
     * @param basicCodeParam
     */
    void edit(BasicCodeParam basicCodeParam);

    /**
     * 移动数据字典
     * @param currentId
     * @param newId
     */
    void move(String currentId, String newId);

    /**
     * 根据fKey获取字典
     * @param fKey
     * @return
     */
    List<BasicCodeVO> getCodeByFKey(String fKey);

    /**
     * 判断key是否唯一
     * @param id
     * @param key
     * @return
     */
    boolean isUniqueKey(String id ,String key);
}
